package model;


/**
 * 
 * @author Wim The Student class is an abstract model class that stores
 *         information about a Student like studentNumber, name, course history
 *         and registrations.
 * 
 */
public class Student implements Business {

	private String studentNumber;
	private String name;
	
	private IDiscountStrategy discountStrategy = DiscountFactory.instance().createDiscount(this);
	

	/**
	 * Constructor to instantiate a Student with a studentNumber and name.
	 * 
	 * @param studentNumber
	 *            The Student number
	 * @param name
	 *            The student name
	 */
	public Student(String studentNumber, String name) {
		this.name = name;
		this.studentNumber = studentNumber;
	}

	/**
	 * 
	 * @return The number of the Student
	 */
	public String getStudentNumber() {
		return studentNumber;
	}

	/**
	 * Sets the number of the Student to the number of the argument.
	 * 
	 * @param studentNumber
	 *            A String value indicating the number to be assigned to the
	 *            Student
	 */
	public void setStudentNumber(String studentNumber) {
		this.studentNumber = studentNumber;
	}

	/**
	 * 
	 * @return The name of the student
	 */
	public String getName() {
		return name;
	}

	/**
	 * Set the name of the Student to the name of the argument.
	 * 
	 * @param name
	 *            A String value indicating the name to be assigned to the
	 *            Student
	 */
	public void setName(String name) {
		this.name = name;
	}

	
	public String toString(){
		return name;
	}
	
	public float getsubmissionFee(){
		return discountStrategy.calculateSubmissionFee(this);
	}

}
